// 将示例代码封装在一个函数中
pub fn run_examples() {
  println!("===== Rust 字符示例 =====\n");

  // 1. 字符类型定义及基础使用
  println!("1. 字符类型定义及基础使用:");
  example_1();

  // 2. 字符转 ascii 码
  println!("2. 字符转 ascii 码:");
  example_2();
}

// 1. 字符类型定义及基础使用
fn example_1() {
  let x = 'a';
  let y = '中';
  println!("   定义 let x = 'a'; let y = 'y'; 注意 char 类型用单引号");
  println!("   char 类型存储为 4 个字节, size_of_val(&x) is {} bytes; size_of_val(&y) is {} bytes", size_of_val(&x), size_of_val(&y));
  println!("   utf-8 编码长度, x.len_utf8() is {} bytes; y.len_utf8() is {} bytes", x.len_utf8(), y.len_utf8());
}

// 2. 字符转 ascii 码
fn example_2() {
  let x = 'a';
  println!("   'a' ascii code is {}", x as u8);
  let y = '中';
  println!("   '中' ascii code is {}", y as u32);
}